1. Field of the Invention
The present invention generally relates to computer systems, and particularly to a method of controlling and displaying visual perspectives in a virtual reality space using pointing techniques, and still more particularly to such a method implemented in a multi-user virtual reality space.
2. Description of the Related Art
Computers can be used to provide a wide variety of visual presentations and graphic illustrations on display monitors and other viewing devices. Examples include such diverse applications as video games, educational tools, and artistic drawing interfaces. Early computer graphics technology was two-dimensional (2-D), that is, limited to the visual appearance of generally flat objects. As this technology developed, and with the advent of more powerful computers, programs have been devised to allow the presentation of three-dimensional (3-D) objects and environments.
A computer defines a 3-D object using a mathematical model or representation, such as a solid of revolution, or a group of polygons which have been connected along various sides to provide an exterior shape for the object. One initial use of 3-D imagery was in computer-aided design (CAD), a type of computer program which can display an object such as a manufacturing component or chemical structure from various viewing angles, even animating the object through the quick, successive display of multiple viewpoints. The depth component of an object can be further accentuated using shading and perspective techniques based on a given viewing location and assumed source of light. More complicated 3-D objects can be designed by combining basic 3-D objects or by using volumes or surfaces defined by overlapping objects, and 3-D environments of varying size can be constructed by spreading out or interconnecting several 3-D objects in a defined space.
The term "virtual reality" (VR) refers to such a simulated 3-D environment that a computer user can explore by changing the user's viewing angle or location, and that a user can further sometimes modify or interact with by manipulating objects in the VR space (e.g., moving, duplicating or deleting objects). Different viewing devices can be used to present a VR world, such as a simple display screen, or a screen mounted in a helmet or special pair of goggles, or even stereoscopic screens. Input devices can be similarly simple or complex, ranging from a joystick-type controller or a pointing device (e.g., a so-called mouse), to special accoutrements (e.g., a glove) fitted with sensors which detect the user's movements. The VR space can be constructed or customized by the user, or pre-defined by another computer user or administrator, or the program itself.
When a user "enters" a virtual world, there is not necessarily any object in the VR space that directly corresponds to the user, but it is nevertheless common to associate the user with a character object in the virtual world. The user's character object is referred to herein as an avatar. The avatar can be of various forms, but is typically humanoid/bipedal, and the viewing location that determines the displayed image corresponds to the general vicinity of the eyes of the virtual character, with the viewing angle determined by the orientation (inclination) of the avatar's head. In other words, the user "sees" the virtual world through the eyes of the avatar. Some computer systems provide simultaneous access to a single virtual world for many users. In this case, each user can have a different avatar, with each user's display providing a different perspective (those perspectives can, for example, include the images of other users' avatars). Applications for virtual reality include, again, video games, educational tools, and artistic drawing interfaces as well as business applications such as virtual business meetings, trade shows, electronic malls, etc. In multi-user applications, avatars might have different limitations on their virtual abilities, e.g., to actively participate and interact, or to just passively view other avatars.
Current computer technology does not provide any easy means for the user to precisely control the movement of an avatar or its body parts. Currently, a user must wear a cumbersome and expensive body suit or body glove to control an avatar's body movements. For this reason, most avatars are controlled using gestures. Gestures are visible viewable actions which the user can instruct the avatar to execute through the input device(s). For example, a user can instruct an avatar to smile, handshake, walk, punch, etc. Gestures are very limited in controlling the avatar. With conventional technology, it is impossible to allow a user to gain precise control of an avatar in order to perform, e.g., high precision pointing, diagramming, drawing, or other actions which require delicate movement of the avatar's appendage(s).
In light of the foregoing, it would be desirable to devise a method to allow precision control of the avatar's interactions with virtual objects and the virtual 3-D environment. It would be further advantageous if the method were applicable to a multi-user environment, and responded to such precision control by appropriately adapting the perspectives of other users.